package org.infodavid.common.persistence;

import java.io.Serializable;

/**
 * The Interface IBasicDataObject.
 */
public interface IBasicDataObject extends Serializable, Cloneable {

	/**
	 * Initialize the.
	 * @throws Exception The exception
	 */
	void init() throws Exception;

	/**
	 * Checks if is modified.
	 * @return true, if is modified
	 */
	boolean isModified();

	/**
	 * Mark modified.
	 * @param property the property
	 */
	void markModified(String property);

	/**
	 * Checks if is modification tracking enabled.
	 * @return true, if checks if is modification tracking enabled
	 */
	boolean isModificationTrackingEnabled();

	/**
	 * Sets the modification tracking enabled.
	 * @param flag the modification tracking enabled
	 */
	void setModificationTrackingEnabled(boolean flag);
}
